package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

//用户解决跨域问题
@CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST})
@RestController
/**
 * @apiNote 用于用户的增删改查
 * @author 钟顺浩
 * @email 2918185121@qq.com
 * @since 1.0.0
 */
public class UserController extends BaseController {

//    // 使用@Autowired注解自动装配UserService类的实例，并将其注入到当前类中
    @Autowired
    private UserService userService;
//
//
//    /**
//     * @apiNote 用于实现用户信息的查询
//     * @author 钟顺浩
//     * @email 2918185121@qq.com
//     * @return List<User>
//     * @since 1.0.0
//     */
    @GetMapping("/select")
    public List<User> select(){
        print("查询的数据：");
        printList(userService.list());
        return userService.list();
    }


    /**
     * @apiNote 用于实现用户信息的修改
     * @author 钟顺浩
     * @param user 用户对象
     * @email 2918185121@qq.com
     * @return List<User>
     * @since 1.0.0
     */
    @PostMapping("/update")
    public List<User>  update(@RequestBody User user){
        print("修改前的数据");
        printList(userService.list());
        userService.updateById(user);
        print("修改后的数据");
        printList(userService.list());
        return  userService.list();
    }


    /**
     * @apiNote 用于实现用户信息的增加
     * @author 钟顺浩
     * @param user 用户对象
     * @email 2918185121@qq.com
     * @since 1.0.0
     */
    @PostMapping("/insert")
    public void insert(@RequestBody User user){
        print("插入前的数据");
        printList(userService.list());
        userService.save(user);
        print("插入后的数据");
        printList(userService.list());
    }


    /**
     * @apiNote 用于实现用户的删除
     * @author 钟顺浩
     * @param user 用户对象
     * @email 2918185121@qq.com
     * @since 1.0.0
     */
    @PostMapping("/delete")
    public void delete(@RequestBody User user){
        print("删除前的数据");
        printList(userService.list());
        print("删除后的数据");
        userService.removeById(user.getId());
        printList(userService.list());
    }
}
